import Axios from 'axios';
import { Message } from 'element-ui'
const apiconfig = require('../../config/config.js')
import profile from '../../static/profile';
// 参考文档 ：https://www.kancloud.cn/yunye/axios/234845
// create an axios 实例
var instance = Axios.create({
    //withCredentials: true,//表示跨域请求时是否需要使用凭证
    baseURL: apiconfig.config[profile.active].BASEURL,
    timeout: 1000,
    // headers: { 'X-Custom-Header': 'foobar' }

});

// 添加请求拦截器
instance.interceptors.request.use(function (config) {
    // config.headers['X-Token'] = 'token'
    if (sessionStorage.getItem('token')) {
        config.headers['Authorization'] = sessionStorage.getItem('token')
    }
    // 在发送请求之前做些什么
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
instance.interceptors.response.use(function (response) {
    if (response.data.success) {
        sessionStorage.setItem("token", "");
        // window.location.href = apiconfig.config[profile.active].BASEURL.login
        window.location.href = ""
    }
    // 对响应数据做点什么
    return response;
}, function () {
    // 对响应错误做点什么
    return Promise.reject(error);
});



// const service = axios.create({
//     withCredentials: true,
//     baseURL: apiconfig.config[profile.active][sessionStorage.getItem('whitchCity')].baseurl,
//     timeout: 5000,
//     headers: { "Content-Type": "application/json" },
// })
// service.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
// request 一个请求拦截器  在then和catch之前拦截请求和响应。
// service.interceptors.request.use(
//     config => {
//         // console.log('请求')
//         // console.log(config)
//         // console.log("store.getters.token");
//         // console.log(store.getters.token);
//         // console.log(getToken());
//         // 在发送请求之前做些什么！
//         if (store.getters.token) {
//             sessionStorage.setItem('tokenMsg', getToken());
//             // 让每个请求携带token-- ['X-Token']为自定义key 请根据实际情况自行修改,从内存中取得
//             config.headers['Authorization'] = getToken()
//             // console.log('--=-wefwbkfwfeg');
//             // console.log(config);
//         }
//         // config.headers = {
//         //   'Content-Type': 'application/json' // 设置很关键
//         // }
//         return config
//     },
//     error => {
//         console.log(error)
//         Promise.reject(error)
//     }
// )

// response interceptor 响应拦截
// service.interceptors.response.use(
//     response => {
//         const authorization = response["headers"].authorization;
//         if (authorization) {
//             setToken(authorization)
//         }
//         if (response.data.code === 402 && response.data.subCode === 804 || response.data.code === 402 && response.data.subCode === 402) {
//             removeToken()
//             window.location.href = apiconfig.config[profile.active][sessionStorage.getItem('whitchCity')].sso + "login?service=" + apiconfig.config[profile.active][sessionStorage.getItem('whitchCity')].login;
//         }
//         if (response.data.hasOwnProperty('success') && !response.data.success) {
//             Message({
//                 dangerouslyUseHTMLString: true,
//                 message: `<p>${response.data.message || response.data.errMessage}</p>`,
//                 type: 'error',
//                 duration: 3 * 1000
//             })
//         }
//         return response;
//     },
//     error => {
//         Message({
//             dangerouslyUseHTMLString: true,
//             message: `<p>${error.message}===></p><p>${error.response.config.url}</p>`,
//             type: 'error',
//             duration: 5 * 1000
//         })
//         //  Message({
//         //   message: error.message,
//         //   type: 'error',
//         //   duration: 5 * 1000
//         // })
//         return Promise.reject(error)
//     }
// )

export default instance
